Analyze Dependencies Ư¡Àº ´ç½Å¿¡°Ô ´ç½ÅÀÌ Èï¹Ì ÀÖ´Â Äڵ尡 ¹«¾ù¿¡ ÀÇÁ¸ÇÏ´ÂÁö¸¦ ¾Ë±â À§ÇØ °¡´É¼ºÀ» ÁÝ´Ï´Ù. ¶ÇÇÑ Æ¯º°ÇÑ ´ÙÀ̾ó·Î±× ¾ð¾îÀÇ µµ¿òÀ¸·Î ´ç½ÅÀº ³ªÅ¸³ª´Â Ç׸ñÀ» ÇÊÅ͸µ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Analyze Dependencies °¡ ´ÙÀ̾ó·Î±×¸¦ ºÎ¸£±â À§ÇØ, ÁÖ ¸Þ´º¿¡¼ Analyze
Dependencies ¼±ÅÃÇϽʽÿÀ. ¶Ç´Â ÇÊ¿äÇÑ Ç׸ñ(Ŭ·¡½º, ÆÐŰÁö, µî)À» ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ°í ¿¡µðÅÍ¿¡¼ Analyze |
Analyze Dependencies ¸¦ ¼±ÅÃÇϰí, Project
ViewÀÇ Project ¿Í Packages ÅÇ ¶Ç´Â J2EE ÅÇ ( Project View )
¶Ç´Â CommanderÀÇ Analyze Dependencies ¼±ÅÃÇÏ´Â °Í¿¡ ÀÇÇØ ºÒ·ÁÁö´Â ¹®¸Æ ´ëÀÀ ¸Þ´º·ÎºÎÅÍ ´ç½ÅÀº ±×°ÍÀ» Âø¼öÇÒ ¼ö ÀÖ½À´Ï´Ù.
¸¸ÀÏ ´ç½ÅÀÌ ¿¡µðÅÍ ¶Ç´Â ÆÄÀÏ(¸Þ´ºÀÇ ¾î¶² °Í¿¡¼) À§¿¡¼ Analyze Dependencies¸¦ ºÎ¸£¸é ´ç½Å¿¡°Ô Specify Dependency
Analysis Scope ´ÙÀ̾ó·Î±×°¡ ÇÁ·ÒÇÁÆ® µÉ °Í ÀÔ´Ï´Ù. ´ç½ÅÀÌ ÇöÀçÀÇ ÆÄÀÏ(µðÆúÆ®)³ª Àüü ÇÁ·ÎÁ§Æ®¸¦ ºÐ¼®ÇÏ°í ½Í¾îÇÏ´ÂÁö´Â ¼±ÅÃÇϱâ(»óÀÀÇÏ´Â ¿É¼Ç ¹öư°ú ´õºÒ¾î) À§ÇØ »ç¿ëµË´Ï´Ù.

±× ´ÙÀ½ Dependency Viewer Åø À©µµ¿ì°¡ ³ªÅ¸³³´Ï´Ù.

|
IntelliJ IDEAÀÇ Åø À©µµ¿ì¿¡¼ ÀÏ¹Ý Á¤º¸¸¦ À§ÇØ Åø À©µµ¿ì ¼½¼ÇÀ» ÂüÁ¶ÇϽʽÿÀ.
|

Åø À©µµ¿ì´Â 3°³ÀÇ À©µµ¿ì·Î ±¸¼ºµË´Ï´Ù. ÁÂÃø »ó´ÜÀÇ À©µµ¿ì(Analyzed
Code Window)´Â Æ®¸® º¸±â·Î¼ ´ç½ÅÀÇ ÇÁ·ÎÁ§Æ® ÆÄÀÏÀ» Ç¥½ÃÇÕ´Ï´Ù. ´Ù¸¥ ¾î´À Ŭ·¡½º(ÇÁ·ÎÁ§Æ®, ¶óÀ̺귯¸® ¶Ç´Â ÀÚ¹Ù SDK¿¡)¿¡ ÀÇÁ¸ÇÏ´Â Java ÆÄÀÏÀ» ¼±ÅÃÇÏ´Â °ÍÀº Ç׸ñ¿¡ ¼±ÅÃµÈ Java ´ë»ó ÆÄÀÏÀÌ »óÀ§ ¿À¸¥ÂÊ À©µµ¿ì(Parent
Code Window)¿¡¼ ÀÇÁ¸ÇÏ´Â °ÍÀ» º¸¿©ÁÝ´Ï´Ù. ¿ìÃø À©µµ¿ì¿¡¼ Ç׸ñÀ» ¼±ÅÃÇÏ´Â °ÍÀº ´õ ¾Æ·¡ À©µµ¿ì(Usage
Window)¿¡¼ ºÐ¼®µÈ Á¾¼ÓÀÇ(¿ÞÂÊ À©µµ¿ì) Äڵ忡¼ ºÎ¸ðÀÇ (¿ìÃø À©µµ¿ì)ÄÚµåÀÇ ¸ðµç »ç¿ëÀ» Ç¥½ÃÇÕ´Ï´Ù.
Usage Window´Â Find
tool window¿Í À¯»çÇÑ Åø¹Ù¿Í ¹®¸Æ ¸Þ´º¸¦ °¡Áö°í ÀÖ½À´Ï´Ù.
Dependency Viewer Åø À©µµ¿ì´Â ´ÙÀ½ ¹öư°ú ÇÔ²² Åø¹Ù¸¦ °¡Áý´Ï´Ù:
Close
|

|
Ctrl + Shift + F4
|
Åø À©µµ¿ì¸¦ ´ÝÀ¸½Ê½Ã¿À.
|
Rerun
|

|
Ctrl + F5
|
ÀÇÁ¸ ±¸Á¶ ÇØ¼®¹ýÀ» Àç½ÇÇà ÇϽʽÿÀ.
|
Flatten Packages
|

|
|
¹öưÀÌ ´¸± ¶§, ¸ðµç ÆÐŰÁö´Â ÇϳªÀÇ ·¹º§ Æ®¸® º¸±â·Î¼ Ç¥½ÃµË´Ï´Ù. µû¶ó¼, ¸¸ÀÏ ´ç½ÅÀÇ ÆÐŰÁö°¡ ´ç½ÅÀÇ ÇÁ·ÎÁ§Æ® ³»¿¡¼ ±íÀº ¾î¶² °÷À̶ó¸é, ±×°ÍÀ» ÅÇ¿¡¼ ¹ß°ßÇϱâ À§ÇØ Áö±Ý ¹æ±Ý ±× À̸§À» ¹ß°ßÇÏ´Â °ÍÀº Àüü Æ®¸® °èÃþÀ» Áö³ª±â À§ÇØ ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù.
|
Show Files
|

|
|
´¸± ¶§, Analyzed Code
Window¿Í Parent
Code Window ÀÇ ÆÄÀÏÀÌ º¸ÀÔ´Ï´Ù.
|
Show Modules
|

|
|
´¸± ¶§, Æ®¸® º¸±âÀÇ Ç׸ñÀº »óÀÀÇÏ´Â ¸ðµâ ³ëµå ¾Æ·¡¿¡¼ ³ªÅ¸³³´Ï´Ù.
±×·¸Áö ¾ÊÀ¸¸é, ÇÁ·ÎÁ§Æ® Ç׸ñÀº »óÀÀÇÏ´Â ÆÐŰÁö(ÆÐŰÁö¿Í ´õºÒ¾î sourcepath¿Í °°Àº) ¾Æ·¡¿¡¼ ³ªÅ¸³³´Ï´Ù.

|
Modules ÀÇ Á¸Àç´Â ´ç½ÅÀÌ ¸î °³ÀÇ ¸ðµâ Áß¿¡ ÇÑ ÆÐŰÁö ºÐÇÒÀ» °¡Áö´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù.
±×¸®°í ³ªÅ¸³ª´Â ¸ðµâ ¾øÀÌ ´ç½ÅÀº ±×°ÍÀ» ¹ß°ßÇÒ ¼ö ¾ø½À´Ï´Ù.
|
|
Group by Scope Type
|

|
|
´¸± ¶§, Æ®¸®ÀÇ Ç׸ñÀº ±×µéÀÇ ¹üÀ§ ŸÀÔ, Áï Á¦ÀÛ, ½ÃÇè ¶Ç´Â ¶óÀ̺귯¸®¿¡ ÀǰÅÇÏ¿© ³ªÅ¸³³´Ï´Ù.
|
Show Illegals
Only
|

|
|
´¸± ¶§, ºÒ¹ýÀûÀÌ°í ¹«È¿ÇÑ Á¾¼Ó¼º¸¸À» Ç¥½ÃÇÕ´Ï´Ù.
|
Edit Rules
|

|
|
Call the Dependency
Validation dialog allowing you to set valid
dependencies for analysis.
Á¾¼Ó¼º È®ÀÎ ´ÙÀ̾ó·Î±×¸¦ ºÎ¸£¸é ´ç½ÅÀ¸·Î ÇÏ¿©±Ý ºÐ¼®À» À§ÇÑ À¯È¿ÇÑ Á¾¼Ó¼ºÀ» ¼³Á¤Çϵµ·Ï Çã¶ôÇÕ´Ï´Ù.
|
|
Á¾¼Ó¼ºÀ» ºÐ¼®ÇÏ¸é ´ç½ÅÀº ±×µéÀÇ ÀϺθ¦ Á¦¿ÜÇÒ Çʿ䰡 ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¥ ¸»·Î Çϸé, ´ç½ÅÀÇ ÇÁ·ÎÁ§Æ® ºÐ¼®¿¡ ´ëÇØ À¯È¿ÇÏ°í ¹«È¿ÇÑ Á¾¼Ó¼ºÀ» ¼³Á¤Çϱâ À§Çؼ. Dependency
Validation ´ÙÀ̾ó·Î±×´Â ´ç½Å¿¡°Ô ±×·± ¹«È¿ÇÑ Á¾¼Ó¼ºÀ» ±â¼úÇϰí ÀÖ´Â ±ÔÄ¢À» ¼±¾ðÇÏ´Â °ÍÀ» Çã¶ôÇÕ´Ï´Ù.

´ÙÀ̾ó·Î±×´Â ±ÔÄ¢ ¸ñ·Ï°ú ¸î °³ÀÇ ¹öư°ú ÇÔ²² ÆÐ³Î·Î ±¸¼ºµË´Ï´Ù.
Deny usages of
|
µå·Ó-´Ù¿î ¸Þ´º´Â ´ç½ÅÀÌ »ç¿ë ¹üÀ§ ÆÐÅÏÀ» »ý·«µÈ(¹«È¿·Î¼) °ÍÀ¸·Î ¼±ÅÃÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù. ¹üÀ§ ÆÐÅÏÀ» ¼³Á¤Çϱâ À§ÇØ ellipsis ´·¯¼ ¹üÀ§ ÆíÁý ´ÙÀ̾ó·Î±×¸¦ ºÎ¸£½Ê½Ã¿À.
|
in
|
The drop-down menu enables you to select the usage
scope pattern where the previously selected usages are to be omitted. To
set the scope pattern press the ellipsis button to call the Edit
Scopes dialog.
µå·Ó-´Ù¿î ¸Þ´º´Â ´ç½ÅÀÌ ÀÌÀü¿¡ ¼±ÅÃµÈ »ç¿ëÀÌ »ý·«µÈ »ç¿ë ¹üÀ§ ÆÐÅÏÀ» ¼±ÅÃÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù.
¹üÀ§ ÆÐÅÏÀ» ¼³Á¤Çϱâ À§ÇØ ellipsis ´·¯¼ ¹üÀ§ ÆíÁý ´ÙÀ̾ó·Î±×¸¦ ºÎ¸£½Ê½Ã¿À.
|
|
Add RuleÀº ÆÐÅÏ ¸ñ·ÏÀ¸·Î ¶Ç ´Ù¸¥ ¶óÀÎÀ» Ãß°¡ÇÕ´Ï´Ù.
Remove Rule Àº ´ç½ÅÀÌ ¸ñ·Ï¿¡¼ ¼±ÅÃÇß´ø ±ÔÄ¢ Çã¿ëÀ» Á¦°ÅÇϵµ·Ï Çã¶ôÇÕ´Ï´Ù.
Move up/Move down ´Â ¸ñ·ÏÀÇ ¼±ÅÃµÈ ÆÐÅÏ ¶óÀÎÀÇ À§ ¾Æ·¡·Î ¿òÁ÷À̱â ÇÕ´Ï´Ù.
Dependency Validation ±¸¹®Àº ÀÇÁ¸ ±¸Á¶ ÇØ¼®¹ý¿¡ °ü·ÃµÇ´Â ÇÁ·ÎÁ§Æ® ¹üÀ§¸¦ ÁöÁ¤Çϱâ À§ÇØ »ç¿ëµË´Ï´Ù.
ÁÖ¿ä ¹ýÄ¢Àº ´ÙÀ½°ú °°½À´Ï´Ù: "Deny usages
of <Set A> in <Set B>" <Set A>¿Í <Set B> ´Â ´ç½ÅÀÇ ÇÁ·ÎÁ§Æ®¿¡¼ º¸¿©Áö´Â ¾î¶² Ŭ·¡½ºÀÇ ¼¼Æ®°¡ ÀÖ´Â °÷ÀÔ´Ï´Ù.
½Ì±Û Ŭ·¡½º ¼¼Æ®:
°¡Àå ´Ü¼øÇÑ ¼¼Æ®´Â Ŭ·¡½º À̸§À» ´Ü¼øÈ÷ Á¦°øÇÒ »Ó ÀÔ´Ï´Ù. Áï
<com.intellij.OpenApi.MyClass> .
¼ºê ÆÐŰÁö°¡ ¾Æ´Ñ ÆÐŰÁöÀÇ ¸ðµç Ŭ·¡½ºÀÇ ¼¼Æ®:
µµÆ®(.)ÈÄ¿¡ º°Ç¥(*)¸¦ »ç¿ëÇÏ¿© ´ç½ÅÀº ¼ºê ÆÐŰÁö¸¦ Á¦¿ÜÇÑ ÆÐŰÁö¿¡¼ ¸ðµç Ŭ·¡½ºÀÇ ¼¼Æ®¸¦ Á¤ÀÇÇÕ´Ï´Ù. Áï <com.intellij.OpenApi.*> .
¼ºêÆÐŰÁö¿¡¼ »Ó¸¸ ¾Æ´Ï¶ó ÆÐŰÁö¿¡¼ ¸ðµç Ŭ·¡½ºÀÇ ¼¼Æ®:
´õºí µµÆ®(..)ÈÄ¿¡ º°Ç¥(*)¸¦ »ç¿ëÇÏ¿© ´ç½ÅÀº ¼ºêÆÐŰÁö¿¡¼ »Ó¸¸ ¾Æ´Ï¶ó ÆÐŰÁö¿¡¼ ¸ðµç Ŭ·¡½ºÀÇ ¼¼Æ®¸¦ Á¤ÀÇÇÕ´Ï´Ù. Áï <com.intellij.OpenApi..*> .
¼¼Æ®¸¦ Á¤ÀÇÇϱâ À§ÇÏ¿© ¸î °³ÀÇ º¯°æÀÚ°¡ ÀÖ½À´Ï´Ù.
À§Ä¡ º¯°æÀÚ:
You can specify whether the desired set is located in source files, library classes
or test code in the form of src :< E> , lib:<E> and test:<E> where
<E> is the target set.
´ç½ÅÀº ¿øÇÏ´Â ¼¼Æ®°¡ ¼Ò½º ÆÄÀÏ, ¶óÀ̺귯¸® Ŭ·¡½º ¶Ç´Â src :< E> , lib:<E> and test:<E> where
<E> is the target set ÀÇ ÆûÀÇ Å×½ºÆ® Äڵ尡 À§Ä¡ÇÒ °ÍÀÎÁö ¾î¶²Áö Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, <src : com.intellij.OpenApi.*> ´Â ¼ºê ÆÐŰÁö¸¦ Á¦¿ÜÇÑ com.intellij.OpenApi ÆÐŰÁöÀÇ ¼Ò½º Æú´õ ¾Æ·¡ÀÇ ¸ðµç Ŭ·¡½º¸¦ Æ÷ÇÔÇÕ´Ï´Ù .
¸ðµâ º¯°æÀÚ:
You can specify the desired set even further with a module in your source,
library or test classes.
´ç½ÅÀº ½ÉÁö¾î ´õ ³ª¾Æ°¡ ´ç½ÅÀÇ ¼Ò½º, ¶óÀ̺귯¸® ¶Ç´Â Å×½ºÆ® Ŭ·¡½ºÀÇ ¸ðµâ°ú ÇÔ²² ¿øÇÏ´Â ¼¼Æ®¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.
±×°ÍÀº ´ÙÀ½°ú °°ÀÌ º¸ÀÏ °Í ÀÔ´Ï´Ù: src [MyJavaModule]:<E> , lib[MyJavaModule]:<E> and test[MyJavaModule]:<E> where <E> is
the target set. ¿¹¸¦ µé¸é, <src[MyJavaModule] : com.intellij.OpenApi.*> ´Â ¼ºê ÆÐŰÁö¸¦ Á¦¿ÜÇÑ com.intellij.OpenApi ÆÐŰÁöÀÇ MyJavaModule ¸ðµâ¿¡ °ü·ÃµÈ ¼Ò½º Æú´õ ¾Æ·¡ÀÇ ¸ðµç Ŭ·¡½º¸¦ Æ÷ÇÔÇÕ´Ï´Ù .
³í¸®Àû ¿ÀÆÛ·¹ÀÌÅÍ:
¾ð¾î´Â ´ç½ÅÀ¸·Î ÇÏ¿©±Ý AND
(&&) , OR (||) ±×¸®°í NOT(!) °ú °°Àº °øÅë ³í¸®Àû ¿¬»êÀÚ¸¦ »ç¿ëÇϵµ·Ï Çã¶ôÇÕ´Ï´Ù.
|